home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / writesrv.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  92 lines

  1. #
  2. # The script was written by Michel Arboi <arboi@alussinan.org>
  3. # It is released under the GNU Public Licence 
  4. #
  5.  
  6. if(description)
  7. {
  8.   script_id(11222);
  9.   script_version ("$Revision: 1.5 $");
  10. #  script_cve_id("CVE-MAP-NOMATCH");
  11.  
  12.   name["english"] = "Writesrv";
  13.   script_name(english:name["english"]);
  14.  
  15.   desc["english"] = "
  16. writesrv is running on this port; it is used to send messages 
  17. to users.
  18. This service gives potential attackers information about who
  19. is connected and who isn't, easing social engineering attacks for
  20. example.
  21.  
  22. Solution: disable this service if you don't use it
  23.  
  24. Risk factor : Low";
  25.  
  26.   desc["francais"] = "
  27. writesrv tourne sur ce port ; il sert α envoyer des messages 
  28. aux utilisateurs.
  29. Ce service donne aux attaquants potentiels des informations sur
  30. qui est connectΘ et qui ne l'est pas, facilitant, par exemple, des
  31. attaques par 'ingΘnierie sociale'.
  32.  
  33. Solution: dΘsactivez ce service si vous ne l'utilisez pas.
  34.  
  35. Risk factor : Low";
  36.  
  37.  script_description(english:desc["english"], francais:desc["francais"]);
  38.  
  39.  summary["english"] = "Detect writesrv";
  40.  script_summary(english:summary["english"]);
  41.  
  42.  script_category(ACT_GATHER_INFO);
  43.  
  44.  script_copyright(english:"Copyright (C) 2003 Michel Arboi");
  45.  family["english"] = "Useless services";
  46.  script_family(english:family["english"]);
  47.  # script_dependencies("find_service.nes");
  48.  exit(0);
  49. }
  50.  
  51. # port = get_kb_item("Services/unknown");
  52. port = 2401;    # Yes! Just like cvspserver!
  53.  
  54. if (! get_port_state(port)) exit(0);
  55.  
  56. s = open_sock_tcp(port);
  57. if (! s) exit (0);
  58.  
  59. m1 = "NESSUS" + raw_string(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  60. l0 = raw_string(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  61. m2 = "root" + raw_string(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  62.  
  63. m = m1 + l0;
  64. for (i=2; i < 32; i=i+1) m = m + l0;
  65. m = m + m2;
  66. for (i=2; i < 32; i=i+1) m = m + l0;
  67.  
  68. m = m + raw_string(0x2e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, l0);
  69. #display(m) ; exit(0);
  70. send(socket: s, data: m);
  71. r = recv(socket: s, length: 1536);
  72. #display(r);
  73.  
  74. len = strlen(r);
  75. if (len < 512) exit(0);    # Can 'magic read' break this?
  76.  
  77. # It seems that the answer is split into 512-bytes blocks padded 
  78. # with nul bytes:
  79. # <digit> <space> <digit> <enough bytes...>
  80. # Then, if the user is logged:
  81. # <ttyname> <nul bytes...>
  82. # And maybe another block
  83. # <tty2name> <nul bytes...>
  84.  
  85. for (i = 16; i < 512; i = i + 1)
  86. {
  87.   if (ord(r[i]) != 0) exit(0);
  88. }
  89.  
  90. security_warning(port);
  91.